#include "gtksettings.h"
#include "gtksizegroup.h"
#include "gtksizerequest.h"
+#include "gtktogglebutton.h"
#include "gtktoolbar.h"
#include "gtktoolbutton.h"
#include "gtktooltip.h"
/* OPERATION_MODE_SEARCH */
GtkWidget *search_entry;
+ GtkWidget *current_location_radio;
GtkSearchEngine *search_engine;
GtkQuery *search_query;
GtkFileSystemModel *search_model;
operation_mode_set_search (GtkFileChooserWidget *impl)
{
GtkFileChooserWidgetPrivate *priv = impl->priv;
+ gchar *current;
g_assert (priv->search_model == NULL);
gtk_entry_grab_focus_without_selecting (GTK_ENTRY (priv->search_entry));
gtk_places_sidebar_set_location (GTK_PLACES_SIDEBAR (priv->places_sidebar), NULL);
gtk_widget_set_sensitive (priv->filter_combo, FALSE);
+ if (priv->current_folder)
+ current = g_file_get_basename (priv->current_folder);
+ else
+ current = g_strdup (_("Home"));
+ gtk_button_set_label (GTK_BUTTON (priv->current_location_radio), current);
+ g_free (current);
gtk_tree_view_column_set_visible (priv->list_location_column, TRUE);
}
/* Creates a new query with the specified text and launches it */
static void
search_start_query (GtkFileChooserWidget *impl,
- const gchar *query_text)
+ const gchar *query_text)
{
GtkFileChooserWidgetPrivate *priv = impl->priv;
priv->search_query = _gtk_query_new ();
_gtk_query_set_text (priv->search_query, query_text);
}
-
+
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->current_location_radio)) &&
+ priv->current_folder)
+ {
+ gchar *location;
+ location = g_file_get_uri (priv->current_folder);
+ _gtk_query_set_location (priv->search_query, location);
+ g_free (location);
+ }
+
_gtk_search_engine_set_query (priv->search_engine, priv->search_query);
g_signal_connect (priv->search_engine, "hits-added",
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, extra_and_filters);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, location_entry_box);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, search_entry);
+ gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, current_location_radio);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_name_column);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_pixbuf_renderer);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_name_renderer);
<signal name="stop-search" handler="search_entry_stop_cb" swapped="yes"/>
</object>
</child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkRadioButton" id="current_location_radio">
+ <property name="visible">True</property>
+ <property name="draw-indicator">False</property>
+ <property name="label" translatable="yes">Home</property>
+ <signal name="toggled" handler="search_entry_activate_cb" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioButton">
+ <property name="visible">True</property>
+ <property name="draw-indicator">False</property>
+ <property name="group">current_location_radio</property>
+ <property name="label" translatable="yes">All Files</property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="name">search</property>